package com.isman.placeslist.apiobject;

import java.io.Serializable;

public class Status implements Serializable {
	private static final long serialVersionUID = 1L;
	
	private long id = 0;
	private String message = "";
	private int policy = 0;
	private int likeCount = 0;
	private int childCount = 0;
	private int statusType = 2;
	private int toType = 0;
	private String createTime = "";
	
	private User from = new User();
	private To to = new To();
	
	private Image image = new Image();
	private Location checkIn = new Location();
	private Location currentLocation = new Location();
	
	private boolean canDelete = false;
	private boolean canLike = false;
	
	public static class Infomation implements Serializable{
		private static final long serialVersionUID = 1L;
		
		private int checkInCount = 0;
		private int likeCount = 0;
		private int friendCount = 0;
		private int friendMutail = 0;
		private int pictureCount = 0;
		private int friendStatus = 0;
		private String lastPlace = "";
		private User[] friendOfFriend;
		
		public int getCheckInCount() {
			return checkInCount;
		}
		public void setCheckInCount(int checkInCount) {
			this.checkInCount = checkInCount;
		}
		public int getLikeCount() {
			return likeCount;
		}
		public void setLikeCount(int likeCount) {
			this.likeCount = likeCount;
		}
		public int getFriendCount() {
			return friendCount;
		}
		public void setFriendCount(int friendCount) {
			this.friendCount = friendCount;
		}
		public int getFriendMutail() {
			return friendMutail;
		}
		public void setFriendMutail(int friendMutail) {
			this.friendMutail = friendMutail;
		}
		public int getPictureCount() {
			return pictureCount;
		}
		public void setPictureCount(int pictureCount) {
			this.pictureCount = pictureCount;
		}
		public String getLastPlace() {
			return lastPlace;
		}
		public void setLastPlace(String lastPlace) {
			this.lastPlace = lastPlace;
		}
		public User[] getFriendOfFriend() {
			return friendOfFriend;
		}
		public void setFriendOfFriend(User[] friendOfFriend) {
			this.friendOfFriend = friendOfFriend;
		}
		public int getFriendStatus() {
			return friendStatus;
		}
		public void setFriendStatus(int friendStatus) {
			this.friendStatus = friendStatus;
		}
	}
	
	public static class User implements Serializable{
		private static final long serialVersionUID = 1L;
		
		private long id = 0;
		private String name = "";
		private String picture = "";
		
		private String email = "";
		private String telephone = "";
		private String firstname = "";
		private String lastname = "";
		private Infomation info;
		
		//Getter Setter
		public long getId() {
			return id;
		}
		public void setId(long id) {
			this.id = id;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getPicture() {
			return picture;
		}
		public void setPicture(String picture) {
			this.picture = picture;
		}
		public String getEmail() {
			return email;
		}
		public void setEmail(String email) {
			this.email = email;
		}
		public String getTelephone() {
			return telephone;
		}
		public void setTelephone(String telephone) {
			this.telephone = telephone;
		}
		public String getFirstname() {
			return firstname;
		}
		public void setFirstname(String firstname) {
			this.firstname = firstname;
		}
		public String getLastname() {
			return lastname;
		}
		public void setLastname(String lastname) {
			this.lastname = lastname;
		}
		public Infomation getInfo() {
			return info;
		}
		public void setInfo(Infomation info) {
			this.info = info;
		}
	}
	
	public static class To implements Serializable{
		private static final long serialVersionUID = 1L;
		
		private User user = new User();
		private Location location = new Location();
		
		//Getter Setter
		public User getUser() {
			return user;
		}
		public void setUser(User user) {
			this.user = user;
		}
		public Location getLocation() {
			return location;
		}
		public void setLocation(Location location) {
			this.location = location;
		} 
	}
	
	public static class Location implements Serializable{
		private static final long serialVersionUID = 1L;
		
		private long id = 0;
		private String name = "";
		private String description = "";
		private int checkInCount = 0;
		private int likeCount = 0;
		private String picture = "";
		
		private String link = "";
		private String shotLink = "";
		
		private Map map;
		private Infomation info;
		private boolean canLike;
		
		
		//Getter Setter
		public long getId() {
			return id;
		}
		public void setId(long id) {
			this.id = id;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getDescription() {
			return description;
		}
		public void setDescription(String description) {
			this.description = description;
		}
		public String getPicture() {
			return picture;
		}
		public void setPicture(String picture) {
			this.picture = picture;
		}
		public String getLink() {
			return link;
		}
		public void setLink(String link) {
			this.link = link;
		}
		public String getShotLink() {
			return shotLink;
		}
		public void setShotLink(String shotLink) {
			this.shotLink = shotLink;
		}
		public Map getMap() {
			return map;
		}
		public void setMap(Map map) {
			this.map = map;
		}
		public Infomation getInfo() {
			return info;
		}
		public void setInfo(Infomation info) {
			this.info = info;
		}
		public boolean isCanLike() {
			return canLike;
		}
		public void setCanLike(boolean canLike) {
			this.canLike = canLike;
		}
		public int getCheckInCount() {
			return checkInCount;
		}
		public void setCheckInCount(int checkInCount) {
			this.checkInCount = checkInCount;
		}
		public int getLikeCount() {
			return likeCount;
		}
		public void setLikeCount(int likeCount) {
			this.likeCount = likeCount;
		}
	}
	
	public static class Map implements Serializable{
		private static final long serialVersionUID = 1L;
		
		private String countryCode = "";
	    private String countryName = "";
	    private String subLocality = "";
	    private String locality = "";
	    private String adminArea = "";
	    private String postalCode = "";
	    private float latitude = 0f;
	    private float longitude = 0f;
	    
		public String getCountryCode() {
			return countryCode;
		}
		public void setCountryCode(String countryCode) {
			this.countryCode = countryCode;
		}
		public String getCountryName() {
			return countryName;
		}
		public void setCountryName(String countryName) {
			this.countryName = countryName;
		}
		public String getSubLocality() {
			return subLocality;
		}
		public void setSubLocality(String subLocality) {
			this.subLocality = subLocality;
		}
		public String getLocality() {
			return locality;
		}
		public void setLocality(String locality) {
			this.locality = locality;
		}
		public String getAdminArea() {
			return adminArea;
		}
		public void setAdminArea(String adminArea) {
			this.adminArea = adminArea;
		}
		public String getPostalCode() {
			return postalCode;
		}
		public void setPostalCode(String postalCode) {
			this.postalCode = postalCode;
		}
		public float getLatitude() {
			return latitude;
		}
		public void setLatitude(float latitude) {
			this.latitude = latitude;
		}
		public float getLongitude() {
			return longitude;
		}
		public void setLongitude(float longitude) {
			this.longitude = longitude;
		}
	}
	
	public static class Image implements Serializable{
		private static final long serialVersionUID = 1L;
		
		private long id = 0;
		private String size48 = "";
		private String size92 = "";
		private String size120 = "";
		private String source = "";
		
		//Getter Setter
		public long getId() {
			return id;
		}
		public void setId(long id) {
			this.id = id;
		}
		public String getSize48() {
			return size48;
		}
		public void setSize48(String size48) {
			this.size48 = size48;
		}
		public String getSize92() {
			return size92;
		}
		public void setSize92(String size92) {
			this.size92 = size92;
		}
		public String getSize120() {
			return size120;
		}
		public void setSize120(String size120) {
			this.size120 = size120;
		}
		public String getSource() {
			return source;
		}
		public void setSource(String source) {
			this.source = source;
		}		
	}
	
	public static class Categories implements Serializable{
		private static final long serialVersionUID = 1L;
		
		private long id;
		private String name;
		public long getId() {
			return id;
		}
		public void setId(long id) {
			this.id = id;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
	}
	
	
	public Status(int i) {
		this.statusType = i;
	}
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	public int getPolicy() {
		return policy;
	}
	public void setPolicy(int policy) {
		this.policy = policy;
	}
	public int getLikeCount() {
		return likeCount;
	}
	public void setLikeCount(int likeCount) {
		this.likeCount = likeCount;
	}
	public int getChildCount() {
		return childCount;
	}
	public void setChildCount(int childCount) {
		this.childCount = childCount;
	}
	public int getStatusType() {
		return statusType;
	}
	public void setStatusType(int statusType) {
		this.statusType = statusType;
	}
	public int getToType() {
		return toType;
	}
	public void setToType(int toType) {
		this.toType = toType;
	}
	public String getCreateTime() {
		return createTime;
	}
	public void setCreateTime(String createTime) {
		this.createTime = createTime;
	}
	public User getFrom() {
		return from;
	}
	public void setFrom(User from) {
		this.from = from;
	}
	public To getTo() {
		return to;
	}
	public void setTo(To to) {
		this.to = to;
	}
	public Image getImage() {
		return image;
	}
	public void setImage(Image image) {
		this.image = image;
	}
	public Location getCheckIn() {
		return checkIn;
	}
	public void setCheckIn(Location checkIn) {
		this.checkIn = checkIn;
	}
	public Location getCurrentLocation() {
		return currentLocation;
	}
	public void setCurrentLocation(Location currentLocation) {
		this.currentLocation = currentLocation;
	}
	public boolean isCanDelete() {
		return canDelete;
	}
	public void setCanDelete(boolean canDelete) {
		this.canDelete = canDelete;
	}
	public boolean isCanLike() {
		return canLike;
	}

	public void setCanLike(boolean canLike) {
		this.canLike = canLike;
	}
}
